package cn.zhj.mvpart.integration

import org.simple.eventbus.EventBus

object EventBusManager {

    /**
     * 注册订阅者, 允许在项目中同时依赖两个 EventBus, 只要您喜欢
     */
    fun register(subscriber: Any?) {
        EventBus.getDefault().register(subscriber)
    }

    /**
     * 注销订阅者, 允许在项目中同时依赖两个 EventBus, 只要您喜欢
     */
    fun unRegister(subscriber: Any?) {
        EventBus.getDefault().unregister(subscriber)
    }

    /**
     * 发送事件, 如果您在项目中同时依赖了两个 EventBus, 请自己使用想使用的 EventBus 的 Api 发送事件
     */
    fun post(event:Any){
        EventBus.getDefault().post(event)
    }

    /**
     * 发送黏性事件, 如果您在项目中同时依赖了两个 EventBus, 请自己使用想使用的 EventBus 的 Api 发送黏性事件
     */
    fun postSticky(event:Any){
        EventBus.getDefault().postSticky(event)
    }

    /**
     * 注销黏性事件, 如果您在项目中同时依赖了两个 EventBus, 请自己使用想使用的 EventBus 的 Api 注销黏性事件
     */
    fun <T> removeStickyEvent(enventType :Class<T>){
        EventBus.getDefault().removeStickyEvent(enventType)
    }
    /**
     * 清除订阅者和事件的缓存, 如果您在项目中同时依赖了两个 EventBus, 请自己使用想使用的 EventBus 的 Api 清除订阅者和事件的缓存
     */
    fun clear(){
        EventBus.getDefault().clear()
    }


}